<?php
ob_start();
header('Content-type: text/html;charset=utf-8');
/*
	此文件主要功能如下：
		1.在数据库中添加新记录
		2.返回新加记录信息。JSON格式
		3.创建上传目录
	此文件主要在数据库中添加新的记录并返回文件信息
		如果存在则在数据库中添加一条相同记录。返回添加的信息
		如果不存在，则向数据库中添加一条记录。并返回此记录ID
	控件每次计算完文件MD5时都将向信息上传到此文件中
	@更新记录：
		2014-08-12 完成逻辑。
		2017-05-29 增加块路径生成逻辑
		2017-08-17 取消对redis的引用
*/
require '../../vendor/autoload.php';

use biz\FolderSchema;
use database\DBFile;
use database\DBFolder;
use utils\PathTool;
use model\FileInf;
use biz\PathGuidBuilder;
use biz\up7_biz_event;
use utils\WebBase;

$wb = new WebBase;
        
$id 		= $wb->queryString("id");
$pid 		= $wb->queryString("pid");
$pidRoot 	= $wb->queryString("pidRoot");
if(empty($pidRoot)) $pidRoot = $pid;
$uid 		= $wb->queryString("uid");
$lenLoc		= $wb->queryString("lenLoc");
$fCount		= $wb->queryString("filesCount");
$sizeLoc	= $wb->queryString("sizeLoc");
$sizeLoc	= str_replace("+", " ", $sizeLoc);
$callback 	= $wb->queryString("callback");
$pathLoc	= $wb->queryString("pathLoc");
$pathLoc	= PathTool::url_decode($pathLoc);
$pathRel	= $wb->queryString("pathRel");
$pathRel	= PathTool::url_decode($pathRel);

$fileSvr = new FileInf();
$fileSvr->id = $id;
$fileSvr->pid = $pid;
$fileSvr->pidRoot = $pidRoot;
$fileSvr->fdChild = false;
$fileSvr->fdTask = true;
$fileSvr->uid = $uid;
$fileSvr->nameLoc = PathTool::getName($pathLoc);
$fileSvr->nameSvr = $fileSvr->nameLoc;
$fileSvr->pathLoc = $pathLoc;
$fileSvr->pathRel = PathTool::combin($pathRel, $fileSvr->nameLoc);
$fileSvr->lenLoc = intval($lenLoc);
$fileSvr->fileCount = intval($fCount);
$fileSvr->sizeLoc = $sizeLoc;

//生成路径
$pb = new PathGuidBuilder();
$fileSvr->pathSvr = $pb->genFolder($id,$fileSvr->nameLoc);
$fileSvr->pathSvr = str_replace("\\", "/", $fileSvr->pathSvr);

//创建层级结构
$fs = new FolderSchema();
$fs->create($fileSvr);

$dbf = new DBFolder();
//添加到根目录
if($pathRel == "/") DBFile::Add($fileSvr);
//添加到子目录
else $dbf->add($fileSvr);

up7_biz_event::folder_create($fileSvr);

$json = json_encode($fileSvr,JSON_UNESCAPED_SLASHES| JSON_UNESCAPED_UNICODE);//低版本php中，json_encode会将汉字进行unicode编码
$json = urlencode($json);

$json = str_replace("+","%20",$json);
$json = $callback . "({'value':'$json'})";//返回jsonp格式数据。
echo( $json );
?>